package com.gccloud.design.service.impl;

import com.gccloud.design.dao.SdRepoParticipantConfigDao;
import com.gccloud.design.dto.LinkParticipantConfigDto;
import com.gccloud.design.service.LinkParticipantConfigService;
import com.gccloud.starter.core.vo.PageVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Service
public class LinkParticipantConfigServiceImpl implements LinkParticipantConfigService {

    private static final Logger log = LoggerFactory.getLogger(LinkParticipantConfigServiceImpl.class);

    @Resource
    private SdRepoParticipantConfigDao sdRepoParticipantConfigDao;

    @Override
    public Map<String, Object> getParticipantByRepoId(String repoId, PageVO pageObj) {
        return null;
    }

    @Override
    public boolean updateParticipant(LinkParticipantConfigDto linkParticipantConfigDto) {
        return false;
    }

    @Override
    public boolean removeParticipantConfByParticipantConfId(Integer participantConfId) {
        return false;
    }

    @Override
    public Map<String, Object> queryParticipantLists(String participantOrgId, String participantId, String repoId, PageVO pageObj) {
        return null;
    }

    @Override
    public boolean saveParticipant(List<LinkParticipantConfigDto> linkParticipantConfigDtoList) {
        return false;
    }

    @Override
    public Map<String, Object> getOrg(String orgId, String repoId, String orgName, PageVO pageObj) {
        return null;
    }

    @Override
    public Map<String, Object> getRole(String roleName, String roleCode, String repoId, PageVO pageObj) {
        return null;
    }

//    @Override
//    public Map<String, Object> getParticipantByRepoId(String repoId, PageVO pageObj) {
//        try {
//            log.info("========================后台接收的数据为:repoId {}========================" + repoId);
//            PageHelper.clearPage();
//            Page<Object> page = PageHelper.startPage((int)(pageObj.getCurrent()), (int)(pageObj.getSize()), true);
//            List<LinkParticipantConfigVo> list = sdRepoParticipantConfigDao.getParticipantByRepoId(repoId);
//            Map<String, Object> map = new HashMap<>(4);
//            map.put("list", list);
//            map.put("total", page.getTotal());
//            return map;
//        } catch (Exception e) {
//            log.error("========================查询环节参与人失败,异常信息 {}========================" + e.getMessage());
//            throw e;
//        }
//    }
//
//    @Override
//    public boolean updateParticipant(LinkParticipantConfigDto linkParticipantConfigDto) {
//        try {
////            return sdRepoParticipantConfigDao.updateParticipant(linkParticipantConfigDto) > 0;
//        } catch (Exception e) {
//            log.error("====================修改环节参与人失败,异常信息 {}====================" + e.getMessage());
//            throw e;
//        }
//        return true;
//    }
//
//    @Override
//    public boolean removeParticipantConfByParticipantConfId(Integer participantConfId) {
//        try {
//            return sdRepoParticipantConfigDao.removeParticipantConfByParticipantConfId(participantConfId) > 0;
//        } catch (Exception e) {
//            log.error("====================删除环节参与人失败,异常信息 {}====================" + e.getMessage());
//            throw e;
//        }
//    }
//
//    @Override
//    public Map<String, Object> queryParticipantLists(String participantOrgId, String participantId, String repoId, PageVO pageObj) {
//        try {
//            PageHelper.clearPage();
//            Page<Object> page = PageHelper.startPage((int)(pageObj.getCurrent()), (int)(pageObj.getSize()), true);
//            List<LinkParticipantConfigVo> participantList = sdRepoParticipantConfigDao.queryParticipantLists(participantOrgId, participantId);
//            List<LinkParticipantConfigVo> linkParticipantList = sdRepoParticipantConfigDao.getParticipantByRepoId(repoId);
//            for (int i = 0; i < participantList.size(); i++) {
//                for (LinkParticipantConfigVo linkParticipantConfigVo : linkParticipantList) {
//                    if (participantList.get(i).getParticipantId().equals(linkParticipantConfigVo.getParticipantId())) {
//                        participantList.set(i, linkParticipantConfigVo);
//                    }
//                }
//            }
//            Map<String, Object> map = new HashMap<>(4);
//            map.put("list", participantList);
//            map.put("total", page.getTotal());
//            return map;
//        } catch (Exception e) {
//            log.error("========================查询人员失败,异常信息 {}========================" + e.getMessage());
//            throw e;
//        }
//    }
//
//    @Override
//    public boolean saveParticipant(List<LinkParticipantConfigDto> linkParticipantConfigDtoList) {
//        try {
//            Integer result = sdRepoParticipantConfigDao.saveParticipant(linkParticipantConfigDtoList);
//            return result > 0;
//        } catch (Exception e) {
//            log.error("========================保存环节参与人失败,异常信息 {}========================" + e.getMessage());
//            throw e;
//        }
//    }
//
//    @Override
//    public Map<String, Object> getOrg(String orgId, String repoId, String orgName, PageVO pageObj) {
//        try {
//            Map<String, Object> map = new HashMap<>(4);
//            Page<Object> page = PageHelper.startPage((int)(pageObj.getCurrent()), (int)(pageObj.getSize()), true);
//            List<LinkParticipantConfigVo> list = sdRepoParticipantConfigDao.getOrg(orgId, orgName);
//            List<LinkParticipantConfigVo> orgList = sdRepoParticipantConfigDao.getParticipantByRepoId(repoId);
//            for (int i = 0; i < list.size(); i++) {
//                for (LinkParticipantConfigVo org : orgList) {
//                    if (list.get(i).getParticipantId().equals(org.getParticipantId())) {
//                        list.set(i, org);
//                    }
//                }
//            }
//            map.put("list", list);
//            map.put("total", page.getTotal());
//            return map;
//        } catch (Exception e) {
//            log.error("========================查询机构失败,异常信息{}" + e.getMessage());
//            throw e;
//        }
//    }
//
//    @Override
//    public Map<String, Object> getRole(String roleName, String roleCode, String repoId, PageVO pageObj) {
//        try {
//            Map<String, Object> map = new HashMap<>(4);
//            Page<Object> page = PageHelper.startPage((int)(pageObj.getCurrent()), (int)(pageObj.getSize()), true);
//            List<LinkParticipantConfigVo> list = sdRepoParticipantConfigDao.getRole(roleName, roleCode);
//            List<LinkParticipantConfigVo> participantList = sdRepoParticipantConfigDao.getParticipantByRepoId(repoId);
//            for (LinkParticipantConfigVo linkParticipantConfigVo : list) {
//                for (LinkParticipantConfigVo participantConfigVo : participantList) {
//                    if (linkParticipantConfigVo.getParticipantId().equals(participantConfigVo.getParticipantId())) {
//                        linkParticipantConfigVo.setNoticeType(participantConfigVo.getNoticeType());
//                        linkParticipantConfigVo.setIsNotice(participantConfigVo.getIsNotice());
//                        linkParticipantConfigVo.setFinishRule(participantConfigVo.getFinishRule());
//                    }
//                }
//            }
//            map.put("list", list);
//            map.put("total", page.getTotal());
//            return map;
//        } catch (Exception e) {
//            log.error("========================查询角色失败,异常信息{}" + e.getMessage());
//            throw e;
//        }
//    }

}
